iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Software Development

這些年,我們早該學會的Spring Framework系列 第 11

Day11 - Dependency Injection (6) 設定資料庫連線池

  • 分享至 

  • xImage
  •  

Review

Container的職責在於創建、配置與組裝bean,昨天我們學到了

  • 創建有生命週期方法的bean
  • bean的後置處理器的作用

今日將討論使用Spring來設定資料庫連線池

預備工作

H2資料庫

JAR檔準備

JAR引入(請參考Day04 創建專案時引入JAR的方式)

Spring設定資料庫連線池

未使用外部文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="sa"></property>
        <property name="password" value="sa"></property>
        <property name="jdbcUrl" value="jdbc:h2:mem:test"></property>
        <property name="driverClass" value="org.h2.Driver"></property>
    </bean>
</beans>
@Test
public void testDay11(){
    ApplicationContext ioc = new ClassPathXmlApplicationContext("bean11.xml");
    System.out.println("容器啟動完成....");
    DataSource ds = ioc.getBean("dataSource",DataSource.class);
    System.out.println(ds);
}

Result
https://ithelp.ithome.com.tw/upload/images/20220926/20128084uiJMIosINF.jpg

引用外部文件

在專案開發上通常會將資料庫資訊寫在外部properties檔案中。需要在spring設定檔中加入context schema

# dbconfig.properties
jdbc.user=sa
jdbc.password=sa
jdbc.jdbcUrl=jdbc:h2:mem:test
jdbc.driverClass=org.h2.Driver
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 加載外部文件   -->
    <context:property-placeholder location="classpath:dbconfig.properties"></context:property-placeholder>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="${jdbc.user}"></property>
        <property name="password" value="${jdbc.password}"></property>
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
        <property name="driverClass" value="${jdbc.driverClass}"></property>
    </bean>
</beans>

Result
同上


上一篇
Day10 - Dependency Injection (5)
下一篇
Day12 - Dependency Injection (7) XML設定檔的autowire
系列文
這些年,我們早該學會的Spring Framework30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言